【精选】【Python】数据分析.matplotlib.条形图案例处理

您所在的位置:网站首页 票房 翻译 【精选】【Python】数据分析.matplotlib.条形图案例处理

【精选】【Python】数据分析.matplotlib.条形图案例处理

2023-10-23 00:50| 来源: 网络整理| 查看: 265

文章目录 数据分析-matplotlib.柱状\条形图案例处理一、纵向条形图二、横向条形图三、柱状图

数据分析-matplotlib.柱状\条形图案例处理

案例一: 假设你获取到了2017年内地电影票房前20的电影和电影票房数据,使用条形图绘制

一、纵向条形图

1.纵向条形图: plt.barh()

from matplotlib import pyplot as plt from matplotlib import font_manager #设置字体 my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc") #设置坐标 x = ["战狼2","速度与激情8","功夫瑜伽","西游记伏魔篇","变形金刚5\n:最后的骑士","摔跤吧!爸爸","加勒比海盗5:\n死无对证", "金刚:骷髅岛","极限特工:\n终极回归","生化危机6:\n终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:\n输死一战", "蜘蛛侠:\n英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",] y = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86, 6.58,6.23] #设置图片大小 plt.figure(figsize=(20,8),dpi=80) #绘制表格,调整刻度 plt.bar(range(len(x)),y,width=0.3) #plt.xticks(range(len(x)),x,rotation=45,fontproperties=my_font) #如果横坐标名称出现重叠不便于展示,并且旋转后依然不能解决问题,可在坐标内添加“\n”进行换行,如图:movie-1.png #但如果依然不能满足要求,可以尝试绘制横向条形图,见:matplotlib_05_01 plt.xticks(range(len(x)),x,fontproperties=my_font) #添加描述信息 plt.xlabel("电影名称",fontproperties=my_font) plt.ylabel("票房/亿元",fontproperties=my_font) plt.title("2017年内地电影票房前20的电影和电影票房数据",fontproperties=my_font) #绘制网格 plt.grid(alpha=0.3) #保存图片 plt.savefig("movie-1.png") #显示 plt.show()

对x轴信息旋转处理:我们会发现电影名称有部分缺失* 在这里插入图片描述 对x轴信息部分换行处理: 在这里插入图片描述 返回顶部

二、横向条形图

2.横向条形图: plt.barh()

在这里插入图片描述 一开始我们沿用上面的部分代码,出现了异常:TypeError: barh() got multiple values for argument 'width',为查询原因,我们查看 plt.barh() 方法的源码:

在这里插入图片描述 通过查看源码,原来在这里系统定义的是height属性~,同时还要注意,当图形横过来之后,要对应的调整x、y轴的描述信息,否则会出现如下图: 在这里插入图片描述

#绘制表格,调整刻度 plt.barh(range(len(x)),y,height=0.3) plt.yticks(range(len(x)),x,fontproperties=my_font) #添加描述信息 plt.ylabel("电影名称",fontproperties=my_font) plt.xlabel("票房/亿元",fontproperties=my_font) plt.title("2017年内地电影票房前20的电影和电影票房数据",fontproperties=my_font)

在这里插入图片描述

返回顶部

三、柱状图

案例二: 假设知道几部电影在某三天的上映量,展示出电影本身票房以及同其他几部电影的票房对比

from matplotlib import pyplot as plt from matplotlib import font_manager #设置字体 my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc") #设置坐标轴 x = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"] y_20 = [15746,312,4497,319] y_21 = [12357,156,2045,168] y_22 = [2358,399,2358,362] bar_width = 0.2 x_20 = list(range(len(x))) x_21 = [i+bar_width for i in x_20] x_22 = [i+bar_width*2 for i in x_20] #设置大小 plt.figure(figsize=(20,8),dpi=80) #绘制 plt.bar(range(len(x)),y_20,width=bar_width,label="8月20日") plt.bar(x_21,y_21,width=bar_width,label="8月21日") plt.bar(x_22,y_22,width=bar_width,label="8月22日") #设置坐标信息 plt.xticks(x_21,x,fontproperties=my_font) #添加描述信息 plt.xlabel("电影名称",fontproperties=my_font) plt.ylabel("当日票房/万元",fontproperties=my_font) plt.title("8月份某3天4部电影各自票房变化",fontproperties=my_font) #绘制图例 plt.legend(prop=my_font) #展示 plt.show()

在这里插入图片描述

返回顶部



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3